﻿Imports CapaLogica.CL.Tema
Imports CapaLogica.CL.UtilidadesGenerales
Imports CapaLogica.CL.Usuario
Imports System.Threading

Public Class CrearTema
    Inherits System.Web.UI.Page


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        seguridadDePagina()

        Try
            If Session("rol") = "1" Or Session("rol") = "5" Then
                Response.Redirect("Inicio.aspx")
            End If



            If Request("inpAccion") = "registrar" Then

                Dim nombre As String = CType(Request.Form("txtNombre"), String)
                Dim descripcion As String = CType(Request.Form("txtaDescripcion"), String)
                Dim fechaFin As DateTime
                Dim temp As String
                Dim tieneExp As Boolean
                Dim calificacion As Boolean

                If Request.Form("chkFechaExp") = "Si" Then
                    tieneExp = True

                    temp = CType(Request.Form("txtFLL"), String)
                    Dim fechaDescompuesta(3) As String
                    fechaDescompuesta = temp.Split("/")

                    temp = fechaDescompuesta(1) & "/" & fechaDescompuesta(0) & "/" & fechaDescompuesta(2)
                    fechaFin = Convert.ToDateTime(temp)

                Else
                    tieneExp = False
                    fechaFin = New Date()
                End If



                If Request("grupoCalificacion") = "Si" Then
                    calificacion = True
                Else
                    calificacion = False
                End If


                Dim justificacion As String = Request.Form("txtJustificacion")
                Dim cantidadAportes As Integer = Request.Form("idtxtCalificacion")
                Dim txt As String = CType(Request.Form("estudiantes"), String)
                Dim estudiantes As List(Of Integer) = obtenerIds(txt)
                Dim id As Integer = CInt(Request("id_foro"))

                GestorTema.registrarTema(nombre, descripcion, fechaFin, calificacion, estudiantes, id, tieneExp, justificacion, cantidadAportes)
                Response.Redirect("Foros.aspx")
            End If
        Catch exth As ThreadAbortException
            Response.Redirect("Foros.aspx")
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de crear el tema", Response)

        End Try


    End Sub


    Private Sub redirigirPorError()
        Response.Redirect("Inicio.aspx")
    End Sub



    Public Sub seguridadDePagina()

            If Request("id_foro") Is Nothing Then
                Response.Redirect("Login.aspx")
            End If

            If Seguridad.validarSiEsDuenioForo(CType(Session("id"), Integer), CType(Request("id_foro"), Integer)) = False Then
                Seguridad.redirigirPorError("Ocurrio un error a la hora de crear el tema", Response)

            End If

    End Sub


    Private Function obtenerIds(ByRef ids As String) As List(Of Integer)

        Try
            Dim listaIds As List(Of Integer) = New List(Of Integer)
            Dim idsTemp() As String = ids.Split(",")
            For Each id As String In idsTemp
                listaIds.Add(CType(id, Integer))
            Next

            Return listaIds
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de crear el tema", Response)
        End Try


    End Function


    Public Function estudiantesForo() As String
        Try
            Dim htmlEstudiantes As String = ""
            Dim contadorIds As Integer = 0
            Dim idForo = CInt(Request("id_foro"))
            Dim estuAsociados As List(Of Informacion) = GestorUsuario.listarEstudiantesForo(idForo)

            For Each estudiante As Informacion In estuAsociados
                contadorIds = contadorIds + 1

                htmlEstudiantes += "<tr>" &
                                       "<td><input id='" & estudiante.IdInfo & "' class='estudianteTema' type='checkbox' checked='checked'/>" & estudiante.Informacion & "</td>" &
                                   "</tr>"

            Next

            Return htmlEstudiantes
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de crear el tema", Response)
        End Try

    End Function

End Class